Computing technology has transformed the way we work and play. Business, residences, and other enterprises have come to rely on computing systems to manage their key operational data. Often, the data itself is many times more valuable to an enterprise than the computing hardware that stores the data. Accordingly, in this information age, many enterprises have taken precautions to protect their data.
One way of protecting data is to introduce storage redundancy. For example, a primary computing system maintains and operates upon the active data. Meanwhile, a backup computing system maintains a copy of the data as the active data existed at a previous instant in time. The backup copy of the data is periodically updated. More frequent updates tend to increase the freshness of the data at the backup computing system.
In order provide such a backup copy to the backup computing system, resources associated with the channel between the primary and backup computing systems are used. For example, when the primary and backup computing systems are located across a network, network bandwidth and other resources are consumed. Even if the primary and backup computing systems are located on the same machine, disk access time and processing resources are expended.
In order to reduce the channel resources expended in order to transfer the backup copy, incremental backup technology is employed. Initially, a full backup is performed such that the backed up memory blocks on the backup computing system have the same content as the corresponding primary memory blocks on the primary computing system. Moving forward from the time of the last backup, the primary computing system may continue to operate on the primary data. As this happens, the content of certain memory blocks (e.g., disk sectors or clusters) on the primary computing system may change due to writes to such memory blocks. During a subsequent incremental backup operation, only the content for the associated primary memory blocks that have changed since the time of the last backup operation are transferred to the backup computing system.
The use of incremental backup technology can significantly reduce the channel resources used to perform the backup in many situations. After all, an incremental backup captures only the changed memory blocks that are still in use by the file system. However, if a disk defragmenter runs after the full backup is taken, then a large number of memory blocks change as the data is rearranged. In the worst case, where most sectors are rearranged, the subsequent incremental backup can approach the same size as the initial full backup, even though none of the internal file data has changed.